toolbar: draw a full box for separators
authorJonh Wendell <jonh.wendell@intel.com>
Mon, 2 Dec 2013 18:32:54 +0000 (16:32 -0200)
committerJonh Wendell <jonh.wendell@intel.com>
Tue, 3 Dec 2013 11:55:58 +0000 (09:55 -0200)
This allows themes do whatever they want as separators, with
paddings, borders and backgrounds.

If "wide-separators" property is true, then, instead of just draw
a frame, also render its background, and take into account the
padding property for its limits.

https://bugzilla.gnome.org/show_bug.cgi?id=719713

gtk/gtktoolbar.c

index c6b8dd37a48bccab958678e541bc089e870a5cfa..46c4ca1a9f65f2f3761638b90ff0f8f241cbb8d6 100644 (file)
@@ -3608,11 +3608,18 @@ _gtk_toolbar_paint_space_line (GtkWidget           *widget,
                             NULL);
 
       if (wide_separators)
-        gtk_render_frame (context, cr,
-                          (width - separator_width) / 2,
-                          height * start_fraction,
-                          separator_width,
-                          height * (end_fraction - start_fraction));
+        {
+          gtk_render_background (context, cr,
+                                 (width - separator_width) / 2,
+                                 padding.top,
+                                 separator_width,
+                                 height - padding.bottom);
+          gtk_render_frame (context, cr,
+                            (width - separator_width) / 2,
+                            padding.top,
+                            separator_width,
+                            height - padding.bottom);
+        }
       else
         gtk_render_line (context, cr,
                          (width - padding.left) / 2,
@@ -3631,11 +3638,18 @@ _gtk_toolbar_paint_space_line (GtkWidget           *widget,
                             NULL);
 
       if (wide_separators)
-        gtk_render_frame (context, cr,
-                          width * start_fraction,
-                          (height - separator_height) / 2,
-                          width * (end_fraction - start_fraction),
-                          separator_height);
+        {
+          gtk_render_background (context, cr,
+                                 padding.left,
+                                 (height - separator_height) / 2,
+                                 width - padding.right,
+                                 separator_height);
+          gtk_render_frame (context, cr,
+                            padding.left,
+                            (height - separator_height) / 2,
+                            width - padding.right,
+                            separator_height);
+        }
       else
         gtk_render_line (context, cr,
                          width * start_fraction,